/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pedido;

import constantes.PedidoConst;
import constantes.PedidoConst;
import java.sql.Date;
import java.sql.Time;
import java.util.HashMap;
import java.util.Set;
import java.util.Vector;
import padroes.Registro;

/**
 *
 * @author atavares
 */
public class Pedido extends Registro{
    

    public Pedido()
    {
        super("pedido");
        adicionarChavePrimaria(PedidoConst.ID);
    }
    public Pedido(int id, int cliente, int formaPgto, double valorTotal,
                  int estadoPedido, Date dataPedido, Time horaPedido)
    {
        this();
        this.set(PedidoConst.ID, id);
        this.set(PedidoConst.CLIENTE, cliente);
        this.set(PedidoConst.FORMAPGTO, formaPgto);
        this.set(PedidoConst.VALORTOTAL, valorTotal);
        this.set(PedidoConst.ESTADOPEDIDO, estadoPedido);
        this.set(PedidoConst.DATAPEDIDO, dataPedido);
        this.set(PedidoConst.HORAPEDIDO, horaPedido);

    }

    public Pedido(HashMap<String,Object> campos)
    {
        this();
        this.setCampos(campos);
    }

    public Boolean match(Pedido criterio, Boolean operador)
    {
        Boolean opAnd = true, opOr = false;
        return (!operador && opAnd) || (!operador && opOr);
    }

    /**
     * @return the id
     */
    public int getId() {
        Integer valor = (Integer)get(PedidoConst.ID);
        return valor.intValue();
    }

    /**
     * @return the id
     */
    public int getCliente() {
        Integer valor = (Integer)get(PedidoConst.CLIENTE);
        return valor.intValue();
    }

    /**
     * @return the id
     */
    public int getFormaPgto() {
        Integer valor = (Integer)get(PedidoConst.FORMAPGTO);
        return valor.intValue();
    }

    /**
     * @return the id
     */
    public double getValorTotal() {
        Double valor = (Double)get(PedidoConst.VALORTOTAL);
        return valor.doubleValue();
    }

    /**
     * @param id the id to set
     */
    public void setId(int idPedido) {

        set(PedidoConst.ID, idPedido);
    }

    /**
     * @param id the id to set
     */
    public void setEstado(int estado) {

        set(PedidoConst.ESTADOPEDIDO, estado);
    }


    /**
     * @param id the id to set
     */
    public void setData(Date data) {

        set(PedidoConst.DATAPEDIDO, data);
    }


    /**
     * @param id the id to set
     */
    public void setHora(Time hora)
    {
        set(PedidoConst.HORAPEDIDO, hora);
    }

    /**
     * @param id the id to set
     */
    public void setCliente(int idCliente)
    {
        set(PedidoConst.CLIENTE, idCliente);
    }

    /**
     * @param id the id to set
     */
    public void setFormaPgto(int formaPgto)
    {
        set(PedidoConst.FORMAPGTO, formaPgto);
    }
    @Override
    public String toString()
    {
        Vector<String> nomesCampos = new Vector<String>();
        nomesCampos.add(PedidoConst.ID);
        nomesCampos.add(PedidoConst.CLIENTE);
        nomesCampos.add(PedidoConst.FORMAPGTO);
        nomesCampos.add(PedidoConst.VALORTOTAL);
        nomesCampos.add(PedidoConst.ESTADOPEDIDO);
        nomesCampos.add(PedidoConst.DATAPEDIDO);
        nomesCampos.add(PedidoConst.HORAPEDIDO);
        
        Vector<String> valores = new Vector<String>();

        for(int i = 0; i < nomesCampos.size(); i++)
        {
            valores.add("");
        }
        String resultado = "";
        String campo = "";

        for(String chave:getCampos().keySet())
        {
            if (getCampos().get(chave) == null)
                campo = "";
            else
                campo = getCampos().get(chave).toString();
            valores.setElementAt(campo, nomesCampos.indexOf(chave));
        }

        for(int i = 0; i < nomesCampos.size(); i++)
        {
            resultado += valores.elementAt(i) + ",";
        }
        resultado = resultado.substring(0, resultado.length()-1);
        return resultado;
    }
}
